package JAVAcollectionsanddatastructures.CollectionFramework;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;

public class CollectionInterface {
    public static void main1(String[] args) {
        //Collection collection = new Collection();  Collection是一个接口，不能实例化
//        Collection collection = new ArrayList();
//        collection.add("hello");
//        collection.add(1);

        //指定放字符串
//        Collection<String> collection = new ArrayList<String>();//泛型
//        collection.add("hello");
        //collection.add(1);报错

        //放整数类型
        //Collection<int> collection = new ArrayList<String>();//报错
        Collection<Integer> collection = new ArrayList<Integer>();//********尖括号里面是放类类型，不能放简单的基本类型
    }


    public static void main(String[] args) {
        Collection collection = new ArrayList();
        collection.add("hello");
        collection.add("hello1");
        System.out.println(collection);//*********可以直接打印collection，并不是打印地址，因为重写了toString方法

//        System.out.println("======================================");
//        collection.clear();//清空集合中的元素
//        System.out.println(collection);
//        System.out.println(collection.isEmpty());

        Object[] objects = collection.toArray();//将集合当中的元素变成数组
        System.out.println(Arrays.toString(objects));//打印数组

        //提问：可以将objects1返回类型强制转换成String吗？
        String[] objects1 = (String[])collection.toArray();
        System.out.println(Arrays.toString(objects1));//打印数组
        //答案显而易见！不可以，JAVA数组不建议整体的强制类型转换，数组类容并没有全部转换**********

    }
}
